home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / multi-1a / frmmain.frm < prev    next >
Text File  |  1999-08-27  |  5KB  |  177 lines

  1. VERSION 5.00
  2. Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX"
  3. Begin VB.Form frmMain 
  4.    Caption         =   "Chat - Server"
  5.    ClientHeight    =   2820
  6.    ClientLeft      =   60
  7.    ClientTop       =   630
  8.    ClientWidth     =   6645
  9.    LinkTopic       =   "Form1"
  10.    ScaleHeight     =   188
  11.    ScaleMode       =   3  'Pixel
  12.    ScaleWidth      =   443
  13.    StartUpPosition =   2  'CenterScreen
  14.    Begin VB.TextBox txtInput 
  15.       BackColor       =   &H00E0E0E0&
  16.       Height          =   285
  17.       Left            =   120
  18.       TabIndex        =   0
  19.       Top             =   2400
  20.       Width           =   6375
  21.    End
  22.    Begin VB.TextBox txtOutput 
  23.       BackColor       =   &H00E0E0E0&
  24.       Enabled         =   0   'False
  25.       Height          =   2175
  26.       Left            =   120
  27.       Locked          =   -1  'True
  28.       MultiLine       =   -1  'True
  29.       TabIndex        =   1
  30.       Top             =   120
  31.       Width           =   6375
  32.    End
  33.    Begin MSWinsockLib.Winsock sckServer 
  34.       Index           =   0
  35.       Left            =   480
  36.       Top             =   0
  37.       _ExtentX        =   741
  38.       _ExtentY        =   741
  39.       _Version        =   393216
  40.    End
  41.    Begin MSWinsockLib.Winsock sckListening 
  42.       Left            =   0
  43.       Top             =   0
  44.       _ExtentX        =   741
  45.       _ExtentY        =   741
  46.       _Version        =   393216
  47.    End
  48.    Begin VB.Menu File 
  49.       Caption         =   "&File"
  50.       Begin VB.Menu line 
  51.          Caption         =   "-"
  52.       End
  53.       Begin VB.Menu Exit 
  54.          Caption         =   "E&xit"
  55.       End
  56.    End
  57.    Begin VB.Menu Options 
  58.       Caption         =   "&Options"
  59.       Begin VB.Menu KickUser 
  60.          Caption         =   "K&ick User"
  61.       End
  62.    End
  63. End
  64. Attribute VB_Name = "frmMain"
  65. Attribute VB_GlobalNameSpace = False
  66. Attribute VB_Creatable = False
  67. Attribute VB_PredeclaredId = True
  68. Attribute VB_Exposed = False
  69. Private Sub Exit_Click()
  70. End
  71. End Sub
  72.  
  73. Private Sub Form_Load()
  74. For x = 1 To 49
  75. Load sckServer(x)
  76. User(x).FreeSocket = True
  77. Next x
  78. User(0).FreeSocket = True
  79. sckListening.LocalPort = 1000
  80. sckListening.Listen
  81. Me.Caption = "Server - " & sckListening.LocalIP
  82. End Sub
  83.  
  84. Private Sub Form_Resize()
  85. On Error Resume Next
  86. txtInput.Top = frmMain.ScaleHeight - 30
  87. txtInput.Width = frmMain.ScaleWidth - 16
  88. txtOutput.Width = frmMain.ScaleWidth - 16
  89. txtOutput.Height = frmMain.ScaleHeight - 45
  90. txtOutput.Left = 8
  91. txtInput.Left = 8
  92. End Sub
  93.  
  94. Private Sub Form_Terminate()
  95. On Error Resume Next
  96. For x = 1 To 49
  97. Unload sckServer(x)
  98. Next x
  99. End Sub
  100.  
  101. Private Sub Form_Unload(Cancel As Integer)
  102. On Error Resume Next
  103. For x = 1 To 49
  104. Unload sckServer(x)
  105. Next x
  106. End Sub
  107.  
  108. Private Sub KickUser_Click()
  109. Dim Output As String
  110. Output = InputBox("Who would you like to kick?", "Who:")
  111. For x = 0 To 49
  112. If User(x).FreeSocket = False Then
  113. If LCase(Output) = LCase(User(x).Name) Then
  114. Output = InputBox("For what reason are you kicking?", "Reason:")
  115. sckServer(x).SendData "Kicked" & vbTab & Output & vbCrLf
  116. DoEvents
  117. Exit Sub
  118. End If
  119. End If
  120. Next x
  121. MsgBox "No one in the chat has that name!", vbInformation, "Note:"
  122. End Sub
  123.  
  124. Private Sub sckListening_ConnectionRequest(ByVal requestID As Long)
  125. For x = 0 To 49
  126. If User(x).FreeSocket = True Then
  127. User(x).FreeSocket = False
  128. sckServer(x).Accept requestID
  129. Exit For
  130. End If
  131. Next x
  132. End Sub
  133.  
  134. Private Sub sckServer_Close(Index As Integer)
  135. User(Index).FreeSocket = True
  136. SendMessage User(Index).Name & " has left the chat!"
  137. User(Index).Name = ""
  138. sckServer(Index).Close
  139. End Sub
  140.  
  141. Private Sub Text(Text As String)
  142. txtOutput.SelStart = Len(txtOutput.Text)
  143. txtOutput.SelText = Text & vbCrLf
  144. End Sub
  145.  
  146. Private Sub sckServer_DataArrival(Index As Integer, ByVal bytesTotal As Long)
  147. Dim Data As String, MainData() As String, SplitData() As String
  148. sckServer(Index).GetData Data, vbString
  149. MainData = Split(Data, vbCrLf)
  150. For x = LBound(MainData) To UBound(MainData) - 1
  151. SplitData = Split(MainData(x), vbTab)
  152. Select Case SplitData(0)
  153. Case "Message"
  154. SendMessage SplitData(1)
  155. Case "Name"
  156. User(Index).Name = SplitData(1)
  157. SendMessage User(Index).Name & " has joined the chat!"
  158. End Select
  159. Next x
  160. End Sub
  161.  
  162. Private Sub txtInput_KeyDown(KeyCode As Integer, Shift As Integer)
  163. Select Case KeyCode
  164. Case vbKeyReturn
  165. SendMessage "Server Message: " & txtInput.Text
  166. txtInput.Text = ""
  167. End Select
  168. End Sub
  169.  
  170. Private Sub SendMessage(Message As String)
  171. Text Message
  172. For x = 0 To 49
  173. If User(x).FreeSocket = False Then sckServer(x).SendData "Message" & vbTab & Message & vbCrLf
  174. DoEvents
  175. Next x
  176. End Sub
  177.